#ifndef UNFOLLOWEVENT_HPP_
#define UNFOLLOWEVENT_HPP_

#include <kit/event/Event.hpp>

namespace KitEvent
{
	/**
	 * This is a representation of unfollow event defined in the task. The
	 * event is identified by letter U, as I silently assumed that events incoming to
	 * the system are correct. For more precise explanation see Event class, as it is
	 * the base class of UnfollowEvent.
	 */
	class UnfollowEvent : public Event
	{
	public:
		UnfollowEvent():Event("U"){}
		UnfollowEvent(KitMessage::Message * iMessage):Event(iMessage, "U"){}
        virtual ~UnfollowEvent();
        virtual Event * makeCopy(KitMessage::Message * iMessage){return new UnfollowEvent(iMessage);}
        virtual void execute(KitUser::UserMap * iUsers);
        virtual bool isValid(KitUser::UserMap * iUsers);
	};
}

#endif /* UNFOLLOWEVENT_HPP_ */
